This type of image forming device is equipped with an OS (operating system) capable of processing multiple tasks for parallel-processing a plurality of functions, such as copying, printing, scanning, and facsimile transmission with a single MPU (microprocessor unit). A kernel space of the OS differs from a process space, and each of multiple process spaces also differs from one another, so that the access to a space from another can not be performed. Therefore, in order to access data in a space from another space, the data has to be copied from the space onto the other prior to accessing.
Japanese Patent Application Laid-Open No. 2003-248626 discloses a configuration of a memory management unit of an image forming device, which allocates a single physical memory area for an area in a kernel space that a USB (universal serial bus) device driver uses and an area in a process space that a USB interface module of the process uses.
However, the aforementioned patent application document does not disclose on memory sharing by processes and a kernel in a multiple process configuration. In a multiple process configuration according to the document thereof, the kernel responds to a memory allocation request or a memory release request by a process. Therefore, if each process arbitrarily requests for memory allocation, the memory allocation increases job wait and hinders an efficient execution of multiple jobs.
Alternatively, a method disclosed in Japanese Patent Application Laid-Open No. 2002-084383 for providing a middleware which mediates memory allocation requests from each job in between an OS and an application, i.e., expanding the platform. This method makes it impossible to use existing software assets and complicates the configuration of a memory management unit of an image forming device by adding an extra layer.
An object of the present invention is to address such issues by providing an image forming device of a simple configuration which enables efficient memory sharing between processes and a kernel in a multiple processes configuration.